<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://schemas.xmlsoap.org/ws/2002/07/utility" version="0.1" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:simpleType name="tTimestampFault">
    <xsd:annotation>
      <xsd:documentation>
This type defines the fault code value for Timestamp message expiration.
          </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:QName">
      <xsd:enumeration value="wsu:MessageExpired" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tContextFault">
    <xsd:annotation>
      <xsd:documentation>
This type defines the fault code values for context-related faults.
          </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:QName">
      <xsd:enumeration value="wsu:ContextEstablished" />
      <xsd:enumeration value="wsu:ContextUnknown" />
      <xsd:enumeration value="wsu:ContextNotSupported" />
      <xsd:enumeration value="wsu:ContextRefused" />
      <xsd:enumeration value="wsu:ContextExpired" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:attribute name="Id" type="xsd:ID">
    <xsd:annotation>
      <xsd:documentation>
This global attribute supports annotating arbitrary elements with an ID.
          </xsd:documentation>
    </xsd:annotation>
  </xsd:attribute>
  <xsd:attribute name="MustUnderstand" type="xsd:boolean">
    <xsd:annotation>
      <xsd:documentation>
This global attribute is used on extensions to distinguish mandatory vs. optional extensions.
          </xsd:documentation>
    </xsd:annotation>
  </xsd:attribute>
  <xsd:attributeGroup name="commonAtts">
    <xsd:annotation>
      <xsd:documentation>
Convenience attribute group used to simplify this schema.
          </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute ref="wsu:Id" use="optional" />
    <xsd:anyAttribute namespace="##other" processContents="lax" />
  </xsd:attributeGroup>
  <xsd:complexType name="AttributedDateTime">
    <xsd:annotation>
      <xsd:documentation>
This type is for elements whose [children] is a psuedo-dateTime and can have arbitrary attributes. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="ValueType" type="xsd:QName">
          <xsd:annotation>
            <xsd:documentation>
This attribute indicates the actual schema type of the element [children]. 
If the ValueType attribute is present, conforming processors must process the string value of [children] as if it were affiliated with the type indicated by this attribute.
If the ValueType attribute is absent, the implied value of this attribute is xsd:dateTime.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attributeGroup ref="wsu:commonAtts" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ReceivedType">
    <xsd:annotation>
      <xsd:documentation>
This type extends AnnotatedDateTime to add a Delay attribute. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="wsu:AttributedDateTime">
        <xsd:attribute name="Delay" type="xsd:int" use="optional">
          <xsd:annotation>
            <xsd:documentation>
This attribute indicates the number of milliseconds that this actor processed this message.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="Actor" type="xsd:anyURI" use="required">
          <xsd:annotation>
            <xsd:documentation>
This attribute indicates the intermediary that processed this message.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="AttributedURI">
    <xsd:annotation>
      <xsd:documentation>
This type is for elements whose [children] is an anyURI and can have arbitrary attributes.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="xsd:anyURI">
        <xsd:attributeGroup ref="wsu:commonAtts" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="TimestampType">
    <xsd:annotation>
      <xsd:documentation>
This complex type ties together the timestamp related elements into a composite type.
            </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element minOccurs="0" ref="wsu:Created" />
      <xsd:element minOccurs="0" ref="wsu:Expires" />
      <xsd:sequence minOccurs="0" maxOccurs="unbounded">
        <xsd:element minOccurs="0" ref="wsu:Received" />
        <xsd:any minOccurs="0" namespace="##other" processContents="lax" />
      </xsd:sequence>
    </xsd:sequence>
    <xsd:attributeGroup ref="wsu:commonAtts" />
  </xsd:complexType>
  <xsd:element name="Timestamp" type="wsu:TimestampType">
    <xsd:annotation>
      <xsd:documentation>
This element allows Timestamps to be applied anywhere element wildcards are present,
including as a SOAP header.
            </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="Expires" type="wsu:AttributedDateTime">
    <xsd:annotation>
      <xsd:documentation>
This element allows an expiration time to be applied anywhere element wildcards are present.
            </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="Created" type="wsu:AttributedDateTime">
    <xsd:annotation>
      <xsd:documentation>
This element allows a creation time to be applied anywhere element wildcards are present.
            </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="Received" type="wsu:ReceivedType">
    <xsd:annotation>
      <xsd:documentation>
This element allows the ReceviedType to be applied anywhere element wildcards are present, including a Timestamp header.
            </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="Identifier" type="wsu:AttributedURI" />
  <xsd:complexType name="ContextType" abstract="true">
    <xsd:annotation>
      <xsd:documentation>
This type is the generic base type for context headers.
            </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element minOccurs="0" ref="wsu:Expires" />
      <xsd:element ref="wsu:Identifier" />
    </xsd:sequence>
    <xsd:attributeGroup ref="wsu:commonAtts" />
  </xsd:complexType>
  <xsd:element name="Context">
    <xsd:annotation>
      <xsd:documentation>
This element allows Contexts to be applied anywhere element wildcards are present,
including as a SOAP header.
            </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:complexContent mixed="false">
        <xsd:extension base="wsu:ContextType">
          <xsd:sequence>
            <xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax" />
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:element>
  <xsd:complexType name="PortReferenceType">
    <xsd:annotation>
      <xsd:documentation>
This complex type defines a lightweight type for transmitting ports.
            </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="Address" type="wsu:AttributedURI" />
      <xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
    </xsd:sequence>
    <xsd:attributeGroup ref="wsu:commonAtts" />
  </xsd:complexType>
  <xsd:element name="PortReference" type="wsu:PortReferenceType">
    <xsd:annotation>
      <xsd:documentation>
This element allows port references to be applied anywhere element wildcards are present.
            </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
</xsd:schema>